]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
screenshot: Connect shot/cast toggle with bind_property
authorIvan Molodetskikh <yalterz@gmail.com>
Sat, 12 Feb 2022 07:21:37 +0000 (10:21 +0300)
committerMarge Bot <marge-bot@gnome.org>
Sat, 12 Feb 2022 12:13:22 +0000 (12:13 +0000)
This way we don't need to uncheck the other button manually, and it also
allows switching the mode by setting the other button's checked to
false, and not just by setting the target mode's button to true. An
example clean-up can be seen in the "V" key handler.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2107>

js/ui/screenshot.js

index cc81490c9849bd5fcf1099bc66d136a2820c4ed7..3740975b1d9a4834e308a747c0f9b30db3c005bd 100644 (file)
@@ -1212,6 +1212,9 @@ var ScreenshotUI = GObject.registerClass({
             this._onCastButtonToggled.bind(this));
         this._shotCastContainer.add_child(this._castButton);
 
+        this._shotButton.bind_property('checked', this._castButton, 'checked',
+            GObject.BindingFlags.BIDIRECTIONAL | GObject.BindingFlags.INVERT_BOOLEAN);
+
         this._shotCastTooltip = new Tooltip(this._shotCastContainer, {
             text: _('Screenshot / Screencast'),
             style_class: 'screenshot-ui-tooltip',
@@ -1638,7 +1641,6 @@ var ScreenshotUI = GObject.registerClass({
     _onShotButtonToggled() {
         if (this._shotButton.checked) {
             this._shotButton.toggle_mode = false;
-            this._castButton.checked = false;
 
             this._stageScreenshotContainer.show();
             this._stageScreenshotContainer.remove_all_transitions();
@@ -1655,7 +1657,6 @@ var ScreenshotUI = GObject.registerClass({
     _onCastButtonToggled() {
         if (this._castButton.checked) {
             this._castButton.toggle_mode = false;
-            this._shotButton.checked = false;
 
             this._captureButton.add_style_pseudo_class('cast');
 
@@ -1966,11 +1967,7 @@ var ScreenshotUI = GObject.registerClass({
         }
 
         if (symbol === Clutter.KEY_v || symbol === Clutter.KEY_V) {
-            if (this._shotButton.checked)
-                this._castButton.checked = true;
-            else
-                this._shotButton.checked = true;
-
+            this._castButton.checked = !this._castButton.checked;
             return Clutter.EVENT_STOP;
         }